def convert_bbox2labels(bbox, NUM_BBOX, CLASSES):
   num_gridx,num_gridy= 7, 7
   labels = np.zeros((5 * NUM_BBOX + len(CLASSES),7,7))
    # 此处需要根据不同数据集的类别个数进行修改
    for i in range(len(bbox) // 5):
        gridx = int(bbox[i * 5 + 1] * num_gridx )  
        # 当前bbox中心落在第gridx个网格,列
        gridy = int(bbox[i * 5 + 2] * num_gridy)  
        # 当前bbox中心落在第gridy个网格,行

        # bbox中心坐标 * 网格大小 - 网格左上角点的坐标
        # 转化为 bbox中心点的相对位置  
        gridpx = bbox[i * 5 + 1] * num_gridx - gridx
        gridpy = bbox[i * 5 + 2] * num_gridy - gridy
        # 将第gridy行,gridx列的网格设置为负责当前的预测,
        # 置信度和对应类别概率均置为1
        # gt_box 中心点相对整图位置 => 中心点相对区域位置
        labels[0:5, gridy, gridx]=np.array([gridpx, 
                                            gridpy, 
                                            bbox[i*5+3], 
                                            bbox[i*5+4], 
                                              1]) # 1表示置信度
        labels[5:10, gridy, gridx, ]=np.array([gridpx, 
                                                gridpy, 
                                                bbox[i*5+3],
                                                bbox[i*5+4],
                                                1]) 

        labels[10 + int(bbox[i * 5]), gridy, gridx] = 1
        # 对应类别概率均置为1
    return labels 
